<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // NaN可以理解为"无效数值""失败数值"或者"坏数值"比较确切
        // NaN是一个特殊值 它和自身不相等 是唯一一个非自反(自反 reflexive 即x === x 为 false)
        // NaN ！= NaN 为true
        // 全局工具函数isNaN(...)有一个bug 就是传入的不是数字类型的值也会返回true
        console.log(window.isNaN( 2 / "foo" ));
        console.log(window.isNaN( "foo" ));

        // es6版本后可以使用Number.isNaN()方法来判定
        // 在es6之前可以自己设置polyfill(补丁)
        if(!Number.isNaN){
            Number.isNaN = function(n){
                // 利用NaN不等于自身的特点
                return n != n;
            };
        }
        console.log(Number.isNaN( 2 / "foo" ));
        console.log(Number.isNaN( "foo" ));

    </script>
</body>
</html>